package com.sse.lb.core;

import java.net.Socket;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * Implementacion del modulo de registro de sistemas centrales.
 * 
 * @author Paul
 * 
 */
public class RegistroSistemaCentral implements IRegistroSistemaCentral {

	/** Instancia singleton del registro. */
	private static final RegistroSistemaCentral instance = new RegistroSistemaCentral();
	
	/** Identificador generado para el sistema central a registrar.*/
	private Long idActualSistema = 0L;

	private Map<Long, Socket> registro = new ConcurrentHashMap<Long, Socket>();
	
	
	public static RegistroSistemaCentral getInstance() {
		return instance;
	}

	@Override
	public void eliminarSistemaCentral(Long idSistema) {
		this.registro.remove(idSistema);

	}

	@Override
	public synchronized Long registrarSistemaCentral(Socket socket) {
		this.idActualSistema +=1;
		this.registro.put(this.idActualSistema, socket);
		return this.idActualSistema;
	}
	
	public Socket obtenerSocket(Long idSistemaCentral){
		return this.registro.get(idSistemaCentral);		
	}

}
